package poc.scc.core;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
@Entity
@SequenceGenerator(name="seq", sequenceName="seq_fornecedor")
public class Fornecedor implements Serializable {

	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq")
	private Long id;
	
	@Column
	private String nome;
	@Column(name="cpf_cnpj")
    private String cpfCnpj;
	@Column(name="razao_social")
    private String razaoSocial;
	@Column(name="numero_inscricao_estadual")
    private String numeroInscricaoEstadual;
	
	@Column
	private String telefone;
	
	@Column
	private String fax;
	
	@Column
    private Boolean ativo = true;
    
    @Embedded
    private Endereco endereco;
    
    @ManyToOne
    @JoinColumn(name="municipio_id")
    private Municipio municipio;
    
    @Column(name="pessoa_juridica")
    private Boolean pessoaJuridica;

    @Column
    private String contato;
    
    @Column(name="telefone_contato")
    private String telefoneContato;
    
    @ManyToMany
    @JoinTable(name="fornecedor_atividade_economica", joinColumns={@JoinColumn(name="fornecedor_id")}, 
    													inverseJoinColumns={@JoinColumn(name="atividade_economica_id")})
    private List<AtividadeEconomica> atividadesEconomicas;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpfCnpj() {
		return cpfCnpj;
	}

	public void setCpfCnpj(String cpfCnpj) {
		this.cpfCnpj = cpfCnpj;
	}

	public String getRazaoSocial() {
		return razaoSocial;
	}

	public void setRazaoSocial(String razaoSocial) {
		this.razaoSocial = razaoSocial;
	}

	public String getNumeroInscricaoEstadual() {
		return numeroInscricaoEstadual;
	}

	public void setNumeroInscricaoEstadual(String numeroInscricaoEstadual) {
		this.numeroInscricaoEstadual = numeroInscricaoEstadual;
	}

	public Boolean getAtivo() {
		return ativo;
	}

	public void setAtivo(Boolean ativo) {
		this.ativo = ativo;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	
}
